package cz.uhk.max.thread;

import cz.uhk.max.locator.ServiceLocator;

public interface ThreadAction {
	
	/**
	 * 
	 * @return Vraci po�et opakov�n�. Tj. kolikr�t se akce provede. 
	 * 		   Hodnota -1 znamen� opakov�n� do nekone�na
	 */
	public int getLoopCount();
	
	/**
	 * 
	 * @return Vraci interval mezi jednotliv�mi opakov�n�mi  		   
	 */
	public Interval getInterval();
	
	/**
	 * 
	 * @return Startovaci hodina, behem ktere se akce zacne provadet
	 */
	public int getStartHour();
	
	/**
	 * 
	 * @return Startovaci minuta, behem ktere se akce zacne provadet
	 */
	public int getStartMinute();
	
	/**
	 * 
	 * @return Startovaci den, behem ktereho se akce zacne provadet 
	 */
	public int getStartDayOfMonth();
	
	/**
	 * 
	 * @return Startovaci mesic, behem ktereho se akce zacne provadet
	 * 			!!!! Cisluji se od nuly !!!
	 */
	public int getStartMonth();
	
	/**
	 * 
	 * @return Startovaci rok, behem ktereho se akce zacne provadet
	 */
	public int getStartYear();
	
	/**
	 * V teto metode je se provadi samotna akce
	 * @param locator
	 */
	public void processAction(ServiceLocator locator);
	
}
